package yxy.cherry.battle.suppression;

import yxy.cherry.battle.Fighter;
import yxy.cherry.battle.module.Camp;
import yxy.cherry.battle.module.affix.Affix;

public class Suppression_阵营克制 extends Suppression {

	SuppressionEffect 克制属性;
	double 克制数值;

	public Suppression_阵营克制(SuppressionEffect 克制属性, double 克制数值) {
		this.克制属性 = 克制属性;
		this.克制数值 = 克制数值;
	}

	@Override
	public double get克制效果(Fighter actor, Fighter target) {
		Camp 克制阵营 = for克制阵营(actor.get阵营());
		if (!target.get阵营().equals(克制阵营)) {
			return 0.0;
		}
		switch (克制属性) {
		case 克制减伤:
			return (-克制数值 / Affix.VALUE_比率分母);
		case 克制增伤:
			return (克制数值 / Affix.VALUE_比率分母);
		default:
			return 0.0;
		}
	}

	static private Camp for克制阵营(Camp camp) {
		switch (camp) {
		case CAMP_魏:
			return Camp.CAMP_群;
		case CAMP_吴:
			return Camp.CAMP_蜀;
		case CAMP_蜀:
			return Camp.CAMP_魏;
		case CAMP_群:
			return Camp.CAMP_吴;
		case CAMP_神:
			return Camp.CAMP_魔;
		case CAMP_魔:
			return Camp.CAMP_神;
		default:
			return null;
		}
	}

}
